home *** CD-ROM | disk | FTP | other *** search
/ MIDICraft's MIDINET CD-ROM / MIDICraft's MIDINET CD-ROM.iso / DOSUTILS / MIDIDMP.DOC < prev    next >
Text File  |  1996-02-22  |  7KB  |  208 lines

  1.         ******************************
  2.             MIDIDMP v1.2
  3.     
  4.         midi binaries to score dump
  5.               by Guenter Nagler 
  6.                 1995 
  7.           (gnagler@ihm.tu-graz.ac.at)
  8.         ******************************
  9.  
  10. [1] BACKGROUND
  11. My Korg i3 has an built-in sequencer that let me edit songs in many ways.
  12. One way is modifying the events of a track directly. Therefore the 
  13. sequencer displays the event data sorted by starting time and split into
  14. measures. In some cases this view of music data looks better than viewing 
  15. the note on and note off events as the program MIDI2TXT does that I have
  16. written earlier (available from my WWW page).
  17. To write complexer midi programs I needed to sort the midi events anyway.
  18. This program was first used to test the sorted midi output.
  19. Now I use this program to get an overview about the duration and location
  20. of certain notes.
  21.  
  22. [2] FILES DESCRIPTION
  23.  
  24. MIDIDMP.EXE.........converter program
  25. MIDIDMP.DOC.........this file, showing usage of MIDIDMP.EXE
  26. MIDIIO.HPP..........header file for a c++ midi parser
  27. MIDIIO.CPP..........source code for a c++ midi parser
  28. MTRACK.HPP..........header file for collecting midi track information
  29. MTRACK.CPP..........source code for collecting midi track information
  30. MIDIDMP.CPP.........c++ source code for midi to text
  31. MIDIDMP.MAK.........make file for project 
  32. MIDIDMP.CFG.........compiler options for make
  33. MIDIDMP.PRJ.........project for borland c++ compilers
  34. only MIDIDMP.EXE is required to run program
  35.  
  36. [3] COPYRIGHT
  37.  
  38. MIDIDMP (c) 1995 was created by Guenter Nagler.
  39.  
  40. MIDIDMP is free and may be used as you wish with this one exception:
  41.  
  42.     You may NOT charge any fee or derive any profit for distribution
  43.     of MIDIDMP.  Thus, you may NOT sell or bundle MIDIDMP with any 
  44.     product in a retail environment (shareware disk distribution, CD-ROM,
  45.     etc.) without permission of the author.
  46.  
  47. You may give MIDIDMP to your friends, upload it to a BBS, or ftp it to
  48. another internet site, as long as you don't charge anything for it.
  49.  
  50. [4] DISCLAIMER
  51.  
  52. MIDIDMP was designed to handle 100% compatible standard midi files.
  53. So I give no guarantees of the results, especially with non 100% 
  54. compatible midi files.
  55. If you find a midi file that you think to be 100% compatible midi
  56. that is not correctly converted, please send a sample file to 
  57. gnagler@ihm.tu-graz.ac.at . 
  58.  
  59. Use MIDIDMP at your own risk.  Anything you do with MIDIDMP is your
  60. responsibility, and not the author's.  Any damage caused to any person,
  61. computer, software, hardware, company, or business by running MIDIDMP 
  62. is your responsibility, and the author will not be liable.
  63.  
  64. If you don't understand these terms, or are not sure of something, or
  65. are afraid something bad might come of using MIDIDMP, don't  use  it!
  66. You are here forewarned.
  67.  
  68. [5] INSTALLATION 
  69.  
  70. [MSDOS]
  71.  
  72.   Simply copy MIDIDMP.EXE in a directory that is in your path.
  73.   When you start the program without arguments
  74.  
  75.   C:\> MIDIDMP
  76.  
  77.   you should get the usage text (see next section)
  78.  
  79. [UNIX]
  80. compile sources with your C++ compiler (e.g. GNU Compiler g++):
  81.  
  82. g++ -o mididmp mididmp.cpp midiio.cpp mtrack.cpp
  83.  
  84. and run program
  85.  
  86. $ mididmp
  87.  
  88. [6] USAGE
  89.  
  90. usage: MIDIDMP [-track [#]][-channel #] file.mid [> file.txt]
  91.  
  92. The parts in brackets [...] are optional.
  93.  
  94. The text output is normally written to screen but can be relinked
  95. to a file  (> filename.txt)  or a printer (> prn). See your MS-DOS/UNIX
  96. manual for usage of  > and >> operators.
  97.  
  98. The program MIDIDMP allows some options:
  99. -track    (without following tracknumbers) shows track information
  100. -track #  (1 or more track numbers following) 
  101.        select the tracks that should be dumped. By default all 
  102.        tracks are dumped.
  103. -channel #  (1 or more channel numbers following 1-16)
  104.       select the channels that should be dumped. By default all
  105.          channels (1-16) are dumped.
  106.       
  107. [7] A sample of resulting text output
  108.  
  109. command> mididmp -track sample.mid
  110. Track 1 [NOCHANNEL]: New Song   (?)
  111. Track 2 [1]: Track01 (Marcato)
  112. Track 3 [2]: Track02 (SynChiff)
  113.  
  114. shows the tracks contained in the midi file sample.mid in following form:
  115. Track tracknumber [trackchannel]: tracktitle (trackprogram)
  116.  
  117. tracknumber is a number between 1 and the number of tracks.
  118.  
  119. The trackchannel is between 1 and 16 (where channel 10 are drums in general 
  120. midi files). The channel is NOCHANNEL when the track does not contain 
  121. any notes. It is MULTICHANNEL when the track contains more than one 
  122. channels (usually found in format 0 midi files).
  123.  
  124. The tracktitle is optional and may contain any text (including those without 
  125. any sense). 
  126.  
  127. The trackprogram is ? if the track does not set a program (instrument).
  128. It is the name of the first chosen general midi program in this track.
  129.  
  130. command> mididmp sample.mid
  131. 96 units per quarternote
  132.  
  133. Track 1: 
  134.  
  135. Track 2:
  136. M001    ======= Beat: 4/4
  137. M001    1.00   G4 V064   0.20
  138. M001    1.00   B4 V064   0.20
  139. M001    1.00   E4 V064   0.20
  140. M001    1.72   C5 V064   0.20
  141. M001    1.72   E4 V064   0.20
  142. M001    1.72   A4 V064   0.20
  143. M001    3.00   G4 V064   0.20
  144. M001    3.00   E4 V064   0.20
  145. M001    3.00   B4 V064   0.20
  146. M001    3.72   E4 V064   0.40
  147. M001    3.72  F#4 V064   0.40
  148. M001    3.72   A4 V064   0.40
  149. M002    ======= Beat: 4/4
  150. M002    1.00   G4 V064   0.20
  151. M002    1.00   B4 V064   0.20
  152. M002    1.00   E4 V064   0.20
  153. M002    1.72   A4 V064   0.20
  154. M002    1.72   C5 V064   0.20
  155. M002    1.72   E4 V064   0.20
  156. M002    3.00   G4 V064   0.20
  157. M002    3.00   B4 V064   0.20
  158.  
  159. Track 3:
  160. M001    ======= Beat: 4/4
  161. M001    TIE    C5 V064   2.37
  162. M001    3.48   B4 V064   0.81
  163. M001    4.48   A4 V064   TIE
  164. M002    ======= Beat: 4/4
  165. M002    TIE    A4 V064   3.86
  166.  
  167. The lines containing notes containing following information:
  168. measure location key velocity duration
  169.  
  170. Each measure is numbered and is formatted by M and leading 0's (e.g. M002).
  171. First line of a measure contains its beat (=tact) (e.g. 4/4, 6/8, ...).
  172.  
  173. The location is TIE if the note was started in one of the measures before.
  174.  
  175. Real locations are formated as quarter.remain  where 1.000 is the beginning
  176. of a measure and 2.000 the second quarternote in a measure. The remaining 
  177. units are relative to units per quarternote value (first output line contains
  178. this value). If this value is 96 then 1.048 this location is 1/8 since 
  179. start of current measure.
  180.  
  181. Keys are named by note name and octave (e.g. G4). G5 is an octave higher 
  182. than G4. G#4 is a halve tone higher than G4 and a halve tone lower than    A4.
  183.  
  184. Velocities are values between 0 and 127 and can influence some parameters of 
  185. notes (e.g. volume, expression, effect, aftertouch, ...). The values are
  186. formated as V and the value with leading 0's. 
  187.  
  188. Durations are displayed in format quarternotes.remain . These value can
  189. be TIE when the note duration exceeds current beat duration.
  190. 1.000 means that the note is played as long as one quarternote (1/4).
  191. The remain value is relative to units per quarternote value as used in 
  192. location value.
  193.  
  194. [8] SUGGESTIONS / COMMENTS / BUG REPORTS / QUESTIONS
  195.  
  196.          WWW:    http://hgiicm.tu-graz.ac.at/Cpub
  197.           contains all my dos/unix midi programs
  198.          EMAIL:  gnagler@ihm.tu-graz.ac.at
  199.  
  200. [9] CHANGES
  201. v1.0 to v1.1:
  202.   * uses module mtrack.cpp to show the track information that is 
  203.     shown by option -track
  204.  
  205. v1.1 to v1.2:
  206.   * fixed bug with notes duration larger than measure
  207.   * improved sorting of notes inside measure.
  208.